#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QApplication>
#include <QMainWindow>
#include <QMessageBox>
#include <QStringList>
#include <QStringListModel>
#include <QDesktopServices>
#include <QProcess>
#include <QUrl>
#include <QStatusBar>
#include <QScrollBar>
#include <QAbstractScrollArea>
#include <stdlib.h>
#include <stdio.h>
#include <libgen.h>
#include "parser.h"
#include "http_client.h"
#include "configboardoptions.h"
#include "aboutwindow.h"
#include "dialogplonk.h"
#include "generalsettings.h"
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void get_xml_file_name(QString value);
    void get_address(QString value);
    void get_post_url(QString value);
    void get_cookie(QString value);


private:
    Ui::MainWindow *ui;
    bool sort_posts_in_order;
    void convert_to_string(int value);
    //QString message;
    QString html_message_post;
    QString url_www;
    QString tribune_xml_add;
    QString message_string_value;
    QString post_url_add;
    QString cookie;
    QString site_name_url;
    QString url_full;
    QString user_name_post;
    QString message_post;
    QString useragent_setting;
    QString fichier_xml;
    QString fichier_xml_with_add;
    QString messages;
    QString old_message_state;
    QStringList plonk;
    QStringList users_list;
    QStringList users_agents_list;
    QStringListModel *connected_users_list_model;
    QDesktopServices browserlaunch;
    QTimer *time_refresh;
    //QScrollBar *barre_defil;
    QStatusBar *barre_info;
    int ua_value;
    int nb_users_val;
    int time;
    bool update_activated;
    void get_parmeters(void);
    void post_action(QString add, QString post_url_add, QString message, QString cookie_val);
private slots:
    void plonk_list_conf_action(void);
    void version_qt(void);
    void load_board_with_timer(void);
    void refresh_board(void);
    void set_site_name_parse(void);
    void show_config_assistant(void);
    void about_window();
    void setadress(void);
    void acces_cnf_opts(void);
    void acces_about(void);
    void acces_about_qt(void);
    void refresh_time(int time);
    //void on_set_address(void);
    void run_board_timer(void);
    void access_refresh_board(void);
    void show_site_name(void);
    void click_post_button(void);
    void click_bold_button(void);
    void click_italic_button(void);
    void click_underlined_button(void);
    void click_strike_button(void);
    void click_anti_bald_button(void);
    void click_anti_pwet_button(void);
    void click_blam_button(void);
    void click_coincoin_button(void);
    void click_joke_button(void);
    void click_moment_button(void);
    void start_general_conf(void);
    void open_url(QUrl url);
    void get_and_set_sitename(QString site);
    void updating(void);
    void stop_refresh(void);
    void pause_refresh(void);
    void start_refresh(void);
    void descente_posts(void);
    void new_post(void);
    void compare_state(void);
    void down_posts(void);
    //void on_stop_board(void);
signals:
    void reception_conf_add(QString);
    void reception_conf_xml_path(QString);
    void reception_conf_post(QString);
    void reception_conf_cookie(QString);
    void envoi_vers_parse_order(bool);
    void envoi_vers_cnf_bool_order(bool);
    void envoi_vers_cnf_add(QString);
    void envoi_vers_cnf_cookie(QString);
    void envoi_vers_cnf_xml_path(QString);
    void envoi_vers_cnf_post_add(QString);
    void envoi_vers_cnf_ua(QString);
    void envoi_vers_cnf_message_type(QString);
    void envoi_vers_cnf_user_name_post(QString);
    void envoi_vers_cnf_ua_value_choice(int);
    void envoi_vers_parse(const QString);
    void envoi_vers_cnf_time(int);
    void envoi_parametres_vers_client_http_get(QString,QString,QString);
    void end_refreshing(void);
    void send_message_info(QString);
    void end_posting(void);
    void content_changed(void);
public slots:
    //Réception de la config
    void get_bool_cnf(bool config_val);
    void get_conf_add( QString value);
    void get_conf_cookie(QString value);
    void get_conf_xml_path(QString value);
    void get_conf_post_add(QString value);
    void get_conf_ua(QString value);
    void get_user_post_name(QString name);
    void get_req_add(QString value);
    void get_conf_board_type(QString value);
    void get_filename_parsing(QString value);
    void get_site_name_from_xml(QString value);
    void get_content_board(QString content);
    void get_name_file_with_add(QString value);
    void get_number_users(int value);
    void get_plonk_users(QStringList plonkusers);
    void get_users_list(QStringList users, QStringList ua);
    void get_user_agents_list(QStringList ua_list);
    void get_user_agent_value(int value);
    void get_time_value_from_cnf(int value);
    void get_state_parsing(int value);
    void parsing(void);
    void get_post_inf_end();
    void update_statusbar(QString info);

protected:



};

#endif // MAINWINDOW_H
